#include <stdio.h>

const int maxArray=20;
const int moveLen=2;

void checkKz(int n,int m,long long  array[maxArray+1][maxArray+1],int x,int y){
    if(x<0||y<0||x>=n||y>=m)
    {
        return;
    }
    array[x][y]=0;
}

void printArray(int n,int m,long long  array[maxArray+1][maxArray+1])
{
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            printf("%lld ",array[i][j]);
        }
        printf("\n");
    }
    printf("\n");

}

int main(){
    int n,m,x,y;
    long long array[maxArray+1][maxArray+1];
    //移动方式
    int move[moveLen][2]={{0,-1},{-1,0}};
    
    scanf("%d %d %d %d",&n,&m,&x,&y);
    int endx=n;
    int endy=m;
    n++;
    m++;
    int i,j,k;
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {

            array[i][j]=1;
            
        }
    }
    //标记控制点
    checkKz(n,m,array,x,y);
    checkKz(n,m,array,x-1,y-1);
    checkKz(n,m,array,x-2,y-1);
    checkKz(n,m,array,x-1,y-2);
    if(x-2!=endx||y-2!=endy)
    {
        checkKz(n,m,array,x-2,y-2);
    }
    checkKz(n,m,array,x-2,y+1);
    checkKz(n,m,array,x-1,y+2);
    checkKz(n,m,array,x+2,y-1);
    checkKz(n,m,array,x+1,y-2);
    checkKz(n,m,array,x+2,y+1);
    checkKz(n,m,array,x+1,y+2);
    checkKz(n,m,array,x+1,y+1);
    if(x+2!=endx||y+2!=endy)
    {
        checkKz(n,m,array,x+2,y+2);
    }

    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {  
            if(i==0&&j==0)
            {
                continue;
            }
            if(array[i][j])
            {
                long long  sum=0;
                for(k=0;k<moveLen;k++)
                {
                    int newx=i+move[k][0];
                    int newy=j+move[k][1];
                    if(newx>=0&&newy>=0&&array[newx][newy]>0)
                    {
                        sum+=array[newx][newy];
                    }
                }

                array[i][j]=sum;

                // printArray(n,m,array);

            }
            
        }
    }

    // printArray(n,m,array);
    printf("%lld\n",array[n-1][m-1]);
    return 0;
}